package zdream.control.foe.mm;

import zdream.control.world.Ticker;

/**
 * 洛克人的武器 / 能力
 *
 * @author Zdream
 * @date 2020-06-10
 */
public interface IMegaManWeapon {

	/**
	 * @return
	 *   是否成功攻击
	 */
	default boolean onAttackPressed(MegaMan mm) {
		return false;
	}

	/**
	 * @return
	 *   是否成功攻击
	 */
	default boolean onAttackReleased(MegaMan mm) {
		return false;
	}

	/**
	 * 比如在蓄力途中换武器, 就要调用它
	 */
	default void onAttackCanceled(MegaMan mm) {

	}

	void doFire(MegaMan mm);

	/**
	 * 这个就算不攻击, 每帧也调用一次. 在 onAttack* 之前调用.
	 */
	default void tick(MegaMan mm, Ticker ticker) {}
}
